js中原生DOM对象(document、HTMLDocument、Document之间的关系、DOM结构树图、document上选择文档节点、元素的方法和属性) 您所在的位置:网站首页 ppt document对象 js中原生DOM对象(document、HTMLDocument、Document之间的关系、DOM结构树图、document上选择文档节点、元素的方法和属性)

js中原生DOM对象(document、HTMLDocument、Document之间的关系、DOM结构树图、document上选择文档节点、元素的方法和属性)

2023-09-13 04:01| 来源: 网络整理| 查看: 265

目录

document、HTMLDocument、Document之间的关系

DOM结构树图

document

选择文档节点

document.getElementById('a')

document.getElementsByTagName('div')

document.getElementsByClassName('a')

document.getElementsByName('a')

document.querySelector('')

document.querySelectorAll('')

节点

节点的4个属性

节点类型

基于节点遍历

div.parentNode

div.childNodes

div.firstChild/lastChild

div.nextSibling

div.previousSibling

div.hasChildNodes()

基于元素节点遍历

div.parentElement

div.children

div.firstElementChild/lastElementChild

div.nextElementSibling

div.previousElementSibling

添加和删除节点

document.createElement('div')

document.createTextNode('')

document.createComment('')

div.appendChild()

div.insertBefore(a,b)

div.removeChild(a)

div.remove()

div.replaceChild(a,b)

改变节点内容

div.innerHTML

div.innerText

改变节点属性

div.setAttribute('class','demo')

div.getAttribute('id')

div.id/div.className

改变节点样式

div.style.height/div.style.backgroundColor/div.style.borderRadius等

document、HTMLDocument、Document之间的关系

document对象代表整个文档,document是由HTMLDocument()构造函数构造(document.__proto__===HTMLDocument.prototype),HTMLDocument.prototype对象是由Document()构造函数构造(HTMLDocument.prototype.__proto__===Document.prototype),Document()还构造XMLDocument.prototype对象。

DOM结构树图

图中大写的单词都是构造函数,例如文本对象就是有Text构造函数构造,继承了Text.prototype上面的方法和属性,根据上面Document和HTMLDocument的关系,我们可以类推下图的关系,例如CharacterData()构造函数构造了Text.prototype对象和Comment.prototype对象(CharacterData.prototype===Text.prototype.__proto__)。然后下图中Document实际上是对应HTMLDocument和XMLDocument,Element实际上是对应HTMLElement和XMLElement。HTMLHeadElement是head标签的构造函数,依次类推,HTMLBodyElement是body标签的构造函数等。当我们想要某类所有的标签都具有某项方法时,我们便可以直接在它的构造函数的原型上进行编程。

  document

首先由于在html中存在唯一的body和head标签,document上以选取好了body和head(document.body和document.head为html中对应的body和head标签)。然后下面将介绍一些document的方法或属性。

选择文档节点 document.getElementById('a')

通过id选择器选择id='a'的文档对象。

该方法定义在Document.prototype上(XML也可以使用)。

document.getElementsByTagName('div')

通过标签选择器选择所有div标签文档对象,注意选择出来的对象是一个类数组,不能直接操作,要使用时需选取其中一个对象进行操作。

该方法定义在Document.prototype和Element.prototype上(XML、元素节点也能使用该方法,代表在该元素下选取符合条件的内容)。

document.getElementsByClassName('a')

通过类选择器选择所有class='a'(相当于css中.a选取元素,该元素可以有多个类名,其中一个为'a'即可)的文档对象,注意选择出来的对象是一个类数组,不能直接操作,要使用时需选取其中一个对象进行操作。

该方法定义在Document.prototype和Element.prototype上(XML、元素节点也能使用该方法,代表在该元素下选取符合条件的内容)。

document.getElementsByName('a')

通过属性选择器选择所有name='a'的文档对象,注意选择出来的对象是一个类数组,不能直接操作,要使用时需选取其中一个对象进行操作,常用于表单对象。

该方法定义在HTMLDocument.prototype上。

document.querySelector('')

通过CSS任何选择器选择,注意只选择符合选择器的第一个对象且不是实时的(如果选择后文档变动,增加了或减少了符合要求的对象,之前的选择结果不会改变)。

该方法定义在Document.prototype和Element.prototype上(XML、元素节点也能使用该方法,代表在该元素下选取符合条件的内容)。

document.querySelectorAll('')

通过CSS任何选择器选择,注意选择所有符合选择器的对象并传入类数组,也不是实时的,除了querySelector的两个方法其他都为实时的。

该方法定义在Document.prototype和Element.prototype上(XML、元素节点也能使用该方法,代表在该元素下选取符合条件的内容)。

  节点 节点的4个属性 nodeName:元素的标签名,以大写形式表示,只读。nodeValue:Text节点或Comment节点的文本内容,可读写。nodeType:该节点的类型,只读。attributes:Element节点的属性集合,以类数组的方式存储,索引位和长度对应的是显式设定的属性。   节点类型 元素节点,nodeType为1。属性节点,nodeType为2。文本节点,nodeType为3。注释节点,nodeType为8。document,nodeType为9。new DocumentFragment(),nodeType为11。   基于节点遍历 div.parentNode

div的直接父节点,最顶端为document。

div.childNodes

div的所有直接子节点(不包括子孙等),并存储在类数组中。

div.firstChild/lastChild

div的第一个/最后一个直接子节点。

div.nextSibling

div的下一个兄弟节点。

div.previousSibling

div的前一个兄弟节点。

div.hasChildNodes()

判断div是否有孩子节点。

 

基于元素节点遍历 div.parentElement

div的直接父元素节点,最顶端为document。

div.children

div的所有直接子元素节点(不包括子孙等),并存储在类数组中。

div.firstElementChild/lastElementChild

div的第一个/最后一个直接元素子节点。

div.nextElementSibling

div的下一个兄弟元素节点。

div.previousElementSibling

div的前一个兄弟元素节点。

 

添加和删除节点 document.createElement('div')

创建div元素节点,但未插入document文档中。

document.createTextNode('')

创建文本节点。

document.createComment('')

创建注释节点。

div.appendChild()

在div的最后一个直接子元素后插入节点(相当于push),当div是html中的节点,则相当剪切操作,先删除了后插入。

div.insertBefore(a,b)

div为b的直接父节点,在b节点之前插入a节点。

div.removeChild(a)

删除div的直接子节点a,并返回a节点。

div.remove()

删除div节点。

div.replaceChild(a,b)

div为a,b的直接父节点,用a节点替换b节点,返回b节点。

 

改变节点内容 div.innerHTML

查看div中的内容,返回字符串形式,可以赋值改变(写入html的字符串形式能被识别为html结构)。

div.innerText

查看div中的所有文本节点,并全部连接成一个字符串返回,可以赋值改变(赋值时,是把div中所有内容替换文本)。

 

改变节点属性 div.setAttribute('class','demo')

给div标签设置class='demo'。

div.getAttribute('id')

取出div标签上属性id值。

div.id/div.className

直接表示div标签的id/class的值,可以直接赋值修改

 

改变节点样式 div.style.height/div.style.backgroundColor/div.style.borderRadius等

查看div的height/background-color等属性(注意是查看html中的行间样式属性,无法查看css中写的,即行间样式中没有显式写的返回空串;另外该属性不一定会和显示出来的真实样式一样),可以直接赋值修改(赋字符串形式且直接写在行间样式上),注意css中以-连接的属性,改为直接大写字母开头;css中的保留字,前面加css并大写单词,例如float则改为cssFloat。

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有